<?php
/**
 * 数据库操作工厂
 * 
 * ============================================================================
 * 版权所有: (c) 2009-2011，<UEShop Inc>，并保留所有权利。
 * 网站地址: http://www.ueshop.cn
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用；
 * 不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 *
 * @author      cmpan
 * @copyright   Copyright (c) 2009-2011 UEShop Inc. (http://www.ueshop.cn)
 * @license     http://www.ueshop.cn/1_0.txt
 */
class UE_DB {

	protected static $_instance = array();
	
	/**
	 * 获取数据库操作对象
	 *
	 * @param string $dbClass
	 * @return UE_DB_Abstract
	 */
	public static function factory($dbDriver = '', $namespace = '') {
		$dbClass = 'UE_DB_' . ucfirst(empty($dbDriver) ? cfg('db_driver') : $dbDriver);
		empty($dbDriver) && $namespace = cfg('db_name');;
		
		if(empty(self::$_instance[$namespace][$dbClass])) {
			$file = LIBS_DIR . '/' . str_replace('_', '/', $dbClass) . ".php";
			if (is_file($file)) {
				require_once $file;
			} else {
				throw new UE_DB_Exception("db driver class ($dbClass: $file)not exists");
			}
			self::$_instance[$namespace][$dbClass] = new $dbClass();
		}
		
		return self::$_instance[$namespace][$dbClass];
	}
}
